// 能力检测（又称特性检测）即在 JavaScript运行时中使用一套简单的检测逻辑，测试浏览器是否支 持某种特性。这种方式不要求事先知道特定浏览器的信息，只需检测自己关心的能力是否存在即可   比如，IE5 之前的版本中没有 document.getElementById()这个 DOM 方法，但可以通过 document.all 属性实现同样的功能。为此，可以进行如下能力检测：

function getElement(id) {
  if (document.getElementById) {
    return document.getElementById(id);
  } else if (document.all) {
    return document.all(id);
  } else {
    throw new Error("No way to retrieve element!");
  }
}

// 这个 getElement()函数的目的是根据给定的 ID 获取元素。因为标准的方式是使用 document. getElementById()，所以首先测试它。如果这个函数存在（不是 undefined），那就使用这个方法； 否则检测 document.all 是否存在，如果存在则使用。如果这两个能力都不存在（基本上不可能），则 抛出错误说明功能无法实现。 能力检测的关键是理解两个重要概念。首先，如前所述，应该先检测常用的方式。在前面的例子 中就是先检测 document.getElementById()再检测 document.all。测试常用的方案可以优化代 码执行，这是因为在多数情况下都可以避免无谓检测。


console.log('--------------------------------');

// 简单地测试到一个属性存在并不代表这个对象就可以排序。更好的方式是检测 sort 是不是函数

// 好一些,检测 sort 是不是函数
function isSortable(object) {
  return typeof object.sort == 'function';
};

